namespace ext
{
	using System;
	using System.Runtime.CompilerServices;
	using System.Html;
	using System.Collections;
	
	
	/// <summary>
	/// A popup date picker. This class is used by the {@link Ext.form.DateField DateField} class
	/// to allow browsing and selection of valid dates.  All the string values documented below may be overridden by including an Ext locale file in
	/// your page.
	/// </summary>
	/// <htmlSummary>
	/// &lt;p&gt;A popup date picker. This class is used by the {@link Ext.form.DateField DateField} class
	/// to allow browsing and selection of valid dates.&lt;/p&gt;
	/// &lt;p&gt;All the string values documented below may be overridden by including an Ext locale file in
	/// your page.&lt;/p&gt;
	/// </htmlSummary>
	/// <definedin>src\widgets\DatePicker.js</definedin>
	[ScriptName("DatePicker")]
	[ScriptNamespace("Ext")]
	[Imported()]
	public partial class DatePicker : ext.Component
	{
		
		#region Constructors
		/// <summary>Constructor</summary>
		/// <param name="config">The config object</param>
		public DatePicker(ext.DatePicker_Configuration config)
		{
		}
		
		/// <summary>Constructor</summary>
		public DatePicker()
		{
		}
		#endregion
		
		#region Fields
		/// <summary>The text to display on the button that selects the current date (defaults to &apos;Today&apos;)</summary>
		/// <htmlSummary>The text to display on the button that selects the current date (defaults to &lt;code&gt;&apos;Today&apos;&lt;/code&gt;)</htmlSummary>
		/// <definedin>src\widgets\DatePicker.js</definedin>
		[ScriptName("todayText")]
		public string TodayText;
		
		/// <summary>The text to display on the ok button (defaults to &apos; OK &apos; to give the user extra clicking room)</summary>
		/// <htmlSummary>The text to display on the ok button (defaults to &lt;code&gt;&apos;&amp;#160;OK&amp;#160;&apos;&lt;/code&gt; to give the user extra clicking room)</htmlSummary>
		/// <definedin>src\widgets\DatePicker.js</definedin>
		[ScriptName("okText")]
		public string OkText;
		
		/// <summary>The text to display on the cancel button (defaults to &apos;Cancel&apos;)</summary>
		/// <htmlSummary>The text to display on the cancel button (defaults to &lt;code&gt;&apos;Cancel&apos;&lt;/code&gt;)</htmlSummary>
		/// <definedin>src\widgets\DatePicker.js</definedin>
		[ScriptName("cancelText")]
		public string CancelText;
		
		/// <summary>
		/// Optional. A function that will handle the select event of this picker.
		/// The handler is passed the following parameters:   picker : DatePicker This DatePicker.   date : Date The selected date.
		/// </summary>
		/// <htmlSummary>
		/// Optional. A function that will handle the select event of this picker.
		/// The handler is passed the following parameters:&lt;div class=&quot;mdetail-params&quot;&gt;&lt;ul&gt;
		/// &lt;li&gt;&lt;code&gt;picker&lt;/code&gt; : DatePicker&lt;div class=&quot;sub-desc&quot;&gt;This DatePicker.&lt;/div&gt;&lt;/li&gt;
		/// &lt;li&gt;&lt;code&gt;date&lt;/code&gt; : Date&lt;div class=&quot;sub-desc&quot;&gt;The selected date.&lt;/div&gt;&lt;/li&gt;
		/// &lt;/ul&gt;&lt;/div&gt;
		/// </htmlSummary>
		/// <definedin>src\widgets\DatePicker.js</definedin>
		[ScriptName("handler")]
		public System.Delegate Handler;
		
		/// <summary>
		/// The scope (this reference) in which the {@link #handler}
		/// function will be called. Defaults to this DatePicker instance.
		/// </summary>
		/// <htmlSummary>
		/// The scope (&lt;code&gt;&lt;b&gt;this&lt;/b&gt;&lt;/code&gt; reference) in which the &lt;code&gt;{@link #handler}&lt;/code&gt;
		/// function will be called. Defaults to this DatePicker instance.
		/// </htmlSummary>
		/// <definedin>src\widgets\DatePicker.js</definedin>
		[ScriptName("scope")]
		public object Scope;
		
		/// <summary>
		/// A string used to format the message for displaying in a tooltip over the button that
		/// selects the current date. Defaults to &apos;{0} (Spacebar)&apos; where
		/// the {0} token is replaced by today&apos;s date.
		/// </summary>
		/// <htmlSummary>
		/// A string used to format the message for displaying in a tooltip over the button that
		/// selects the current date. Defaults to &lt;code&gt;&apos;{0} (Spacebar)&apos;&lt;/code&gt; where
		/// the &lt;code&gt;{0}&lt;/code&gt; token is replaced by today&apos;s date.
		/// </htmlSummary>
		/// <definedin>src\widgets\DatePicker.js</definedin>
		[ScriptName("todayTip")]
		public string TodayTip;
		
		/// <summary>The error text to display if the minDate validation fails (defaults to &apos;This date is before the minimum date&apos;)</summary>
		/// <htmlSummary>The error text to display if the minDate validation fails (defaults to &lt;code&gt;&apos;This date is before the minimum date&apos;&lt;/code&gt;)</htmlSummary>
		/// <definedin>src\widgets\DatePicker.js</definedin>
		[ScriptName("minText")]
		public string MinText;
		
		/// <summary>The error text to display if the maxDate validation fails (defaults to &apos;This date is after the maximum date&apos;)</summary>
		/// <htmlSummary>The error text to display if the maxDate validation fails (defaults to &lt;code&gt;&apos;This date is after the maximum date&apos;&lt;/code&gt;)</htmlSummary>
		/// <definedin>src\widgets\DatePicker.js</definedin>
		[ScriptName("maxText")]
		public string MaxText;
		
		/// <summary>
		/// The default date format string which can be overriden for localization support. The format must be
		/// valid according to {@link Date#parseDate} (defaults to &apos;m/d/y&apos;).
		/// </summary>
		/// <htmlSummary>
		/// The default date format string which can be overriden for localization support. The format must be
		/// valid according to {@link Date#parseDate} (defaults to &lt;code&gt;&apos;m/d/y&apos;&lt;/code&gt;).
		/// </htmlSummary>
		/// <definedin>src\widgets\DatePicker.js</definedin>
		[ScriptName("format")]
		public string Format;
		
		/// <summary>The tooltip to display when the date falls on a disabled day (defaults to &apos;Disabled&apos;)</summary>
		/// <htmlSummary>The tooltip to display when the date falls on a disabled day (defaults to &lt;code&gt;&apos;Disabled&apos;&lt;/code&gt;)</htmlSummary>
		/// <definedin>src\widgets\DatePicker.js</definedin>
		[ScriptName("disabledDaysText")]
		public string DisabledDaysText;
		
		/// <summary>The tooltip text to display when the date falls on a disabled date (defaults to &apos;Disabled&apos;)</summary>
		/// <htmlSummary>The tooltip text to display when the date falls on a disabled date (defaults to &lt;code&gt;&apos;Disabled&apos;&lt;/code&gt;)</htmlSummary>
		/// <definedin>src\widgets\DatePicker.js</definedin>
		[ScriptName("disabledDatesText")]
		public string DisabledDatesText;
		
		/// <summary>An array of textual month names which can be overriden for localization support (defaults to Date.monthNames)</summary>
		/// <definedin>src\widgets\DatePicker.js</definedin>
		[ScriptName("monthNames")]
		public System.Array MonthNames;
		
		/// <summary>An array of textual day names which can be overriden for localization support (defaults to Date.dayNames)</summary>
		/// <definedin>src\widgets\DatePicker.js</definedin>
		[ScriptName("dayNames")]
		public System.Array DayNames;
		
		/// <summary>The next month navigation button tooltip (defaults to &apos;Next Month (Control+Right)&apos;)</summary>
		/// <htmlSummary>The next month navigation button tooltip (defaults to &lt;code&gt;&apos;Next Month (Control+Right)&apos;&lt;/code&gt;)</htmlSummary>
		/// <definedin>src\widgets\DatePicker.js</definedin>
		[ScriptName("nextText")]
		public string NextText;
		
		/// <summary>The previous month navigation button tooltip (defaults to &apos;Previous Month (Control+Left)&apos;)</summary>
		/// <htmlSummary>The previous month navigation button tooltip (defaults to &lt;code&gt;&apos;Previous Month (Control+Left)&apos;&lt;/code&gt;)</htmlSummary>
		/// <definedin>src\widgets\DatePicker.js</definedin>
		[ScriptName("prevText")]
		public string PrevText;
		
		/// <summary>The header month selector tooltip (defaults to &apos;Choose a month (Control+Up/Down to move years)&apos;)</summary>
		/// <htmlSummary>The header month selector tooltip (defaults to &lt;code&gt;&apos;Choose a month (Control+Up/Down to move years)&apos;&lt;/code&gt;)</htmlSummary>
		/// <definedin>src\widgets\DatePicker.js</definedin>
		[ScriptName("monthYearText")]
		public string MonthYearText;
		
		/// <summary>Day index at which the week should begin, 0-based (defaults to 0, which is Sunday)</summary>
		/// <definedin>src\widgets\DatePicker.js</definedin>
		[ScriptName("startDay")]
		public System.Number StartDay;
		
		/// <summary>
		/// False to hide the footer area containing the Today button and disable the keyboard handler for spacebar
		/// that selects the current date (defaults to true).
		/// </summary>
		/// <htmlSummary>
		/// False to hide the footer area containing the Today button and disable the keyboard handler for spacebar
		/// that selects the current date (defaults to &lt;code&gt;true&lt;/code&gt;).
		/// </htmlSummary>
		/// <definedin>src\widgets\DatePicker.js</definedin>
		[ScriptName("showToday")]
		public bool ShowToday;
		
		/// <summary>Minimum allowable date (JavaScript date object, defaults to null)</summary>
		/// <definedin>src\widgets\DatePicker.js</definedin>
		[ScriptName("minDate")]
		public System.DateTime MinDate;
		
		/// <summary>Maximum allowable date (JavaScript date object, defaults to null)</summary>
		/// <definedin>src\widgets\DatePicker.js</definedin>
		[ScriptName("maxDate")]
		public System.DateTime MaxDate;
		
		/// <summary>An array of days to disable, 0-based. For example, [0, 6] disables Sunday and Saturday (defaults to null).</summary>
		/// <definedin>src\widgets\DatePicker.js</definedin>
		[ScriptName("disabledDays")]
		public System.Array DisabledDays;
		
		/// <summary>
		/// JavaScript regular expression used to disable a pattern of dates (defaults to null). The {@link #disabledDates}
		/// config will generate this regex internally, but if you specify disabledDatesRE it will take precedence over the
		/// disabledDates value.
		/// </summary>
		/// <definedin>src\widgets\DatePicker.js</definedin>
		[ScriptName("disabledDatesRE")]
		public System.RegularExpression DisabledDatesRE;
		
		/// <summary>
		/// An array of &apos;dates&apos; to disable, as strings. These strings will be used to build a dynamic regular
		/// expression so they are very powerful. Some examples:
		///  [&apos;03/08/2003&apos;, &apos;09/16/2003&apos;] would disable those exact dates  [&apos;03/08&apos;, &apos;09/16&apos;] would disable those days for every year  [&apos;^03/08&apos;] would only match the beginning (useful if you are using short years)  [&apos;03/../2006&apos;] would disable every day in March 2006  [&apos;^03&apos;] would disable every day in every March  
		/// Note that the format of the dates included in the array should exactly match the {@link #format} config.
		/// In order to support regular expressions, if you are using a date format that has &apos;.&apos; in it, you will have to
		/// escape the dot when restricting dates. For example: [&apos;03\\.08\\.03&apos;].
		/// </summary>
		/// <htmlSummary>
		/// An array of &apos;dates&apos; to disable, as strings. These strings will be used to build a dynamic regular
		/// expression so they are very powerful. Some examples:
		/// &lt;ul&gt;
		/// &lt;li&gt;[&apos;03/08/2003&apos;, &apos;09/16/2003&apos;] would disable those exact dates&lt;/li&gt;
		/// &lt;li&gt;[&apos;03/08&apos;, &apos;09/16&apos;] would disable those days for every year&lt;/li&gt;
		/// &lt;li&gt;[&apos;^03/08&apos;] would only match the beginning (useful if you are using short years)&lt;/li&gt;
		/// &lt;li&gt;[&apos;03/../2006&apos;] would disable every day in March 2006&lt;/li&gt;
		/// &lt;li&gt;[&apos;^03&apos;] would disable every day in every March&lt;/li&gt;
		/// &lt;/ul&gt;
		/// Note that the format of the dates included in the array should exactly match the {@link #format} config.
		/// In order to support regular expressions, if you are using a date format that has &apos;.&apos; in it, you will have to
		/// escape the dot when restricting dates. For example: [&apos;03\\.08\\.03&apos;].
		/// </htmlSummary>
		/// <definedin>src\widgets\DatePicker.js</definedin>
		[ScriptName("disabledDates")]
		public System.Array DisabledDates;
		
		/// <summary>Fires when a date is selected</summary>
		/// <definedin>src\widgets\DatePicker.js</definedin>
		[ScriptName("selectEventName")]
		public const string SelectEventName = "select";
		
		/// <summary>@hide</summary>
		/// <definedin>src\widgets\DatePicker.js</definedin>
		[ScriptName("autoEl")]
		public string AutoEl;
		#endregion
		
		#region Methods
		/// <summary>Replaces any existing disabled days (by index, 0-6) with new values and refreshes the DatePicker.</summary>
		/// <definedin>src\widgets\DatePicker.js</definedin>
		/// <param name="disabledDays">
		/// An array of disabled day indexes. See the {@link #disabledDays} config
		/// for details on supported values.
		/// </param>
		[ScriptName("setDisabledDays")]
		public void SetDisabledDays(System.Array disabledDays)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Replaces any existing {@link #minDate} with the new value and refreshes the DatePicker.</summary>
		/// <definedin>src\widgets\DatePicker.js</definedin>
		/// <param name="value">The minimum date that can be selected</param>
		[ScriptName("setMinDate")]
		public void SetMinDate(System.DateTime value)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Replaces any existing {@link #maxDate} with the new value and refreshes the DatePicker.</summary>
		/// <definedin>src\widgets\DatePicker.js</definedin>
		/// <param name="value">The maximum date that can be selected</param>
		[ScriptName("setMaxDate")]
		public void SetMaxDate(System.DateTime value)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Sets the value of the date field</summary>
		/// <definedin>src\widgets\DatePicker.js</definedin>
		/// <param name="value">The date to set</param>
		[ScriptName("setValue")]
		public void SetValue(System.DateTime value)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Gets the current selected value of the date field</summary>
		/// <definedin>src\widgets\DatePicker.js</definedin>
		/// <returns>The selected date</returns>
		[ScriptName("getValue")]
		public System.DateTime GetValue()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Replaces any existing disabled dates with new values and refreshes the DatePicker.</summary>
		/// <definedin>src\widgets\DatePicker.js</definedin>
		/// <param name="disabledDates">
		/// An array of date strings (see the {@link #disabledDates} config
		/// for details on supported values), or a JavaScript regular expression used to disable a pattern of dates.
		/// </param>
		[ScriptName("setDisabledDates")]
		public void SetDisabledDates(System.Array disabledDates)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Replaces any existing disabled dates with new values and refreshes the DatePicker.</summary>
		/// <definedin>src\widgets\DatePicker.js</definedin>
		/// <param name="disabledDates">
		/// An array of date strings (see the {@link #disabledDates} config
		/// for details on supported values), or a JavaScript regular expression used to disable a pattern of dates.
		/// </param>
		[ScriptName("setDisabledDates")]
		public void SetDisabledDates(System.RegularExpression disabledDates)
		{
			throw new System.Exception("Imported - not implemented");
		}
		#endregion
		
		#region Events
		/// <summary>Fires when a date is selected</summary>
		/// <definedin>src\widgets\DatePicker.js</definedin>
		[ScriptName("select")]
		public event ext.auto.Delegate_ext_DatePicker_And_System_DateTime Select;
		#endregion
	}
}
